import 'dart:async';
import 'dart:math';
import 'package:get/get.dart';

class AnimationLogic extends GetxController {
  // 音量值 (0.0 - 1.0)
  final volume = 0.5.obs;
  
  // 是否正在播放
  final isPlaying = false.obs;
  
  // 模拟音量变化的定时器
  Timer? _volumeTimer;
  
  // 随机数生成器
  final _random = Random();
  
  @override
  void onClose() {
    _volumeTimer?.cancel();
    super.onClose();
  }
  
  // 切换播放状态
  void togglePlayback() {
    isPlaying.value = !isPlaying.value;
    
    if (isPlaying.value) {
      // 开始模拟音量变化
      _startVolumeSimulation();
    } else {
      // 停止模拟
      _volumeTimer?.cancel();
    }
  }
  
  // 设置音量
  void setVolume(double value) {
    volume.value = value;
  }
  
  // 录制声音（这里只是一个示例，实际应用中需要实现真正的录音功能）
  void recordVoice() {
    Get.snackbar('提示', '录音功能尚未实现，这只是一个演示');
  }
  
  // 开始模拟音量变化
  void _startVolumeSimulation() {
    // 取消已有的定时器
    _volumeTimer?.cancel();
    
    // 创建新的定时器，每100毫秒更新一次音量
    _volumeTimer = Timer.periodic(const Duration(milliseconds: 100), (timer) {
      if (!isPlaying.value) {
        timer.cancel();
        return;
      }
      
      // 生成随机音量值，模拟说话的音量变化
      final newVolume = _random.nextDouble();
      volume.value = newVolume;
    });
  }
}
